Tương tác cơ sở dữ liệu Cơ_sở_dữ_liệu

Hệ thống quản lý cơ sở dữ liệu

Connolly và Begg định nghĩa Hệ thống quản lý cơ sở dữ liệu (DBMS) là một "hệ thống phần mềm cho phép người dùng xác định, tạo, duy trì và kiểm soát truy cập vào cơ sở dữ liệu".[24]

Từ viết tắt DBMS đôi khi được mở rộng để chỉ ra mô hình cơ sở dữ liệu cơ bản, với RDBMS cho mô hình quan hệ, OODBMS hoặc ORDBMS cho mô hình đối tượng (định hướng) và ORDBMS cho Quan hệ đối tượng. Các phần mở rộng khác có thể chỉ ra một số đặc điểm khác, chẳng hạn như DDBMS cho hệ thống quản lý cơ sở dữ liệu phân tán.

Các chức năng được cung cấp bởi một DBMS có thể rất khác nhau. Chức năng cốt lõi là lưu trữ, truy xuất và cập nhật dữ liệu. Codd đề xuất các chức năng và dịch vụ sau đây, DBMS có mục đích chung được cung cấp đầy đủ: [25]

  • Lưu trữ, truy xuất và cập nhật dữ liệu
  • Danh mục người dùng có thể truy cập hoặc từ điển dữ liệu mô tả siêu dữ liệu
  • Hỗ trợ giao dịch và đồng thời
  • Các cơ sở phục hồi cơ sở dữ liệu nên bị hỏng
  • Hỗ trợ ủy quyền truy cập và cập nhật dữ liệu
  • Hỗ trợ truy cập từ các địa điểm từ xa
  • Thực thi các ràng buộc để đảm bảo dữ liệu trong cơ sở dữ liệu tuân thủ các quy tắc nhất định

Nhìn chung, DBMS sẽ cung cấp một bộ các tiện ích cho các mục đích như vậy có thể cần thiết để quản trị cơ sở dữ liệu một cách hiệu quả, bao gồm các tiện ích nhập, xuất, giám sát, phân mảnh và phân tích.[26] Phần cốt lõi của DBMS tương tác giữa cơ sở dữ liệu và giao diện ứng dụng đôi khi được gọi là công cụ cơ sở dữ liệu.

Thông thường các DBMS sẽ có các tham số cấu hình có thể được điều chỉnh tĩnh và động, ví dụ: lượng bộ nhớ chính tối đa trên máy chủ mà cơ sở dữ liệu có thể sử dụng. Xu hướng là giảm thiểu số lượng cấu hình thủ công và đối với các trường hợp như cơ sở dữ liệu nhúng, nhu cầu nhắm mục tiêu quản trị tự động là tối quan trọng.

Các DBMS doanh nghiệp lớn có xu hướng tăng kích thước và chức năng và có thể liên quan đến hàng ngàn năm nỗ lực phát triển của con người trong suốt cuộc đời của họ.[lower-alpha 1]

DBMS nhiều người dùng sớm thường chỉ cho phép ứng dụng cư trú trên cùng một máy tính có quyền truy cập thông qua thiết bị đầu cuối hoặc phần mềm mô phỏng thiết bị đầu cuối. Kiến trúc máy chủ của máy khách là một sự phát triển trong đó ứng dụng nằm trên màn hình máy khách và cơ sở dữ liệu trên máy chủ cho phép xử lý được phân phối. Điều này phát triển thành một kiến trúc đa nhiệm kết hợp các máy chủ ứng dụngmáy chủ web với giao diện người dùng cuối thông qua trình duyệt web với cơ sở dữ liệu chỉ được kết nối trực tiếp với tầng liền kề.[27]

DBMS có mục đích chung sẽ cung cấp các giao diện lập trình ứng dụng công cộng (API) và tùy chọn bộ xử lý cho các ngôn ngữ cơ sở dữ liệu như SQL để cho phép các ứng dụng được viết để tương tác với cơ sở dữ liệu. DBMS có mục đích đặc biệt có thể sử dụng API riêng và được tùy chỉnh và liên kết cụ thể với một ứng dụng. Ví dụ, một hệ thống email thực hiện nhiều chức năng của DBMS có mục đích chung như chèn tin nhắn, xóa tin nhắn, xử lý tệp đính kèm, tra cứu danh sách chặn, liên kết tin nhắn một địa chỉ email, v.v..

Ứng dụng

Tương tác bên ngoài với cơ sở dữ liệu sẽ thông qua một chương trình ứng dụng có giao diện với DBMS.[28] Điều này có thể bao gồm từ một công cụ cơ sở dữ liệu cho phép người dùng thực hiện các truy vấn SQL bằng văn bản hoặc bằng đồ họa, đến một trang web tình cờ sử dụng cơ sở dữ liệu để lưu trữ và tìm kiếm thông tin.

Giao diện chương trình ứng dụng

Một lập trình viên sẽ lập trình các tương tác vào cơ sở dữ liệu (đôi khi được gọi là nguồn dữ liệu) thông qua giao diện chương trình ứng dụng (API) hoặc thông qua ngôn ngữ cơ sở dữ liệu. API hoặc ngôn ngữ cụ thể được chọn sẽ cần được DBMS hỗ trợ, có thể gián tiếp thông qua bộ xử lý trước hoặc API bắc cầu. Một số API nhằm mục đích độc lập với cơ sở dữ liệu, ODBC là một ví dụ thường được biết đến. Các API phổ biến khác bao gồm JDBC và ADO.NET.

Ngôn ngữ cơ sở dữ liệu

Ngôn ngữ cơ sở dữ liệu là ngôn ngữ có mục đích đặc biệt, cho phép một hoặc nhiều tác vụ sau, đôi khi được phân biệt là ngôn ngữ con:

  • Ngôn ngữ kiểm soát dữ liệu (DCL) - kiểm soát truy cập dữ liệu;
  • Ngôn ngữ định nghĩa dữ liệu (DDL) - xác định các loại dữ liệu như tạo, thay đổi hoặc xóa và các mối quan hệ giữa chúng;
  • Ngôn ngữ thao tác dữ liệu (DML) - thực hiện các tác vụ như chèn, cập nhật hoặc xóa các lần xuất hiện dữ liệu;
  • Ngôn ngữ truy vấn dữ liệu (DQL) - cho phép tìm kiếm thông tin và tính toán thông tin dẫn xuất.

Ngôn ngữ cơ sở dữ liệu là cụ thể cho một mô hình dữ liệu cụ thể. Các ví dụ đáng chú ý bao gồm:

  • SQL kết hợp các vai trò của định nghĩa dữ liệu, thao tác dữ liệu và truy vấn trong một ngôn ngữ. Đó là một trong những ngôn ngữ thương mại đầu tiên cho mô hình quan hệ, mặc dù nó rời khỏi một số khía cạnh từ mô hình quan hệ như được mô tả bởi Codd (ví dụ, các hàng và cột của bảng có thể được đặt hàng). SQL đã trở thành một tiêu chuẩn của Viện Tiêu chuẩn Quốc gia Hoa Kỳ (ANSI) vào năm 1986 và của Tổ chức Tiêu chuẩn hóa Quốc tế (ISO) năm 1987. Các tiêu chuẩn đã được nâng cao thường xuyên kể từ khi được hỗ trợ (với mức độ phù hợp khác nhau) DBMS quan hệ.[29] [30]
  • OQL là một tiêu chuẩn ngôn ngữ mô hình đối tượng (từ Nhóm quản lý dữ liệu đối tượng). Nó đã ảnh hưởng đến thiết kế của một số ngôn ngữ truy vấn mới hơn như JDOQL và EJB QL.
  • XQuery là ngôn ngữ truy vấn XML tiêu chuẩn được triển khai bởi các hệ thống cơ sở dữ liệu XML như MarkLogiceXist, bởi các cơ sở dữ liệu quan hệ có khả năng XML như Oracle và DB2 và cả các bộ xử lý XML trong bộ nhớ như Saxon.
  • SQL/XML kết hợp XQuery với SQL.[31]

Một ngôn ngữ cơ sở dữ liệu cũng có thể kết hợp các tính năng như:

  • Cấu hình và quản lý công cụ lưu trữ dành riêng cho DBMS
  • Tính toán để sửa đổi kết quả truy vấn, như đếm, tính tổng, tính trung bình, sắp xếp, nhóm và tham chiếu chéo
  • Hạn chế thực thi (ví dụ: trong cơ sở dữ liệu ô tô, chỉ cho phép một loại động cơ trên mỗi ô tô)
  • Phiên bản giao diện lập trình ứng dụng của ngôn ngữ truy vấn, để thuận tiện cho lập trình viên

Tài liệu tham khảo

WikiPedia: Cơ_sở_dữ_liệu http://databases.about.com/od/sql/a/sqlfundamental... http://drdobbs.com/blogs/database/228700616 http://www.embedded-computing.com/articles/id/?202... http://publib.boulder.ibm.com/infocenter/db2luw/v9... http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?... http://www.ibmpressbooks.com/articles/article.asp?... http://www.merriam-webster.com/dictionary/administ... http://www.merriam-webster.com/dictionary/retrieva... http://www.merriam-webster.com/dictionary/update http://www.obitko.com/tutorials/ontologies-semanti...